Põe na Minha Conta

Após vários anos emprestando dinheiro a amigos e não obtendo retornos, você decide usar um programa Python para manter o que lhe é devido.

Você decide acompanhar o que seus amigos lhe devem usando um dicionário que mapeia seus nomes (como strings) para listas de valores. Por exemplo, se você emprestou 5 reais a Joe em uma ocasião e 7 reais em outra, e 20 reais a Denny em uma ocasião, você poderia representar isso usando o seguinte dicionário:

debt_dict = {'Joe': [5, 7], 'Denny': [20]}

Neste problema, você escreverá várias funções para ajudar nas operações comuns em tal estrutura:

  • lend_money(debts, person, amount) deve ter três argumentos:

    • uma estrutura como a acima descrevendo as dívidas atuais,
    • o nome de um amigo como uma string, e
    • uma quantia de dinheiro para emprestar como um número inteiro ou float. Ela deve retornar None, mas deve alterar a estrutura debts de dívidas fornecida para contabilizar esta nova dívida (observe que você terá que contabilizar o caso em que o nome fornecido ainda não está no dicionário, bem como o caso em que já está).
  • amount_owed_by(debts, person) deve ter dois argumentos:

    • uma estrutura como a acima descrevendo as dívidas atuais, e
    • o nome de um amigo como uma string. Ela deve retornar o valor total devido por determinada pessoa. Observe que qualquer pessoa que não esteja no dicionário pode ser tratada como devendo 0.
  • total_amount_owed(debts) deve retornar o valor total que você é devido, considerando todas as pessoas no dicionário.

Submissão

Quando estiver pronto (depois de ter simulado manualmente e testado em sua própria máquina e estiver convencido de que seu programa fará a coisa certa), faça upload do seu arquivo Python no Problema 3.4 no Gradescope. Lembre de nomear seu arquivo p3_4.py.